package com.lixinyue.working;
/*
面向对象的特征一：封装与隐藏
1.当我们创建一个类的对象后，我们可以通过“对象.属性”的方式对对象属性进行赋值，这里赋值操作要受到属性的
数据类型和存储范围的制约，除此之外，没与其他制约。但是在实际情况中，为属性赋值我们往往还会加入额外的
限制条件，这个条件就不能在属性声明时体现，我们只能通过方法进行限制条件的添加，同时，我们需要避免用户再使用
“对象.属性”对对象属性再进行赋值，则需要将属性声明为私有（private）。此时，属性就体现了封装性。
2.封装性的体现
我们把类的属性私有化，同时提供公共的方法（public）来设置和获取属性的值。这是封装性的一个体现。
3.封装性的体现，需要权限修饰符修饰
（从小到大）private、缺省default、protected、public
4.四种权限可以用来修饰类及类的内部结构：属性、方法、构造器、内部类
具体的：四种权限都可以用来修饰雷的内部结构：属性、方法、构造器、内部类

修饰类的只有：public和缺省
 */

public class AnimalTest {
    public static void main(String[] args) {
        Animal animal = new Animal();
//        animal.showLegs(6);
//        animal.show();
//        System.out.println("****************");
//        System.out.println( animal.getLegs());
        animal.setAge(19);
        System.out.println( animal.getAge());
    }

}
class Animal{
   private int age;
    private int legs;
    String name;
    //对属性的设置
    public void setAge(int a)
    {
        if(a<100)
        {
            age=a;
        }
    }
    public int getAge()
    {
        return age;
    }
    public void setLegs(int l){
        if (l>0&&l%2==0)
        {
            legs=l;
        }
    }
    //对属性的获取
    public int  getLegs()
    {
       return legs;
    }


    public void show()
    {
        System.out.println("age="+age+",legs="+legs+",name="+name);
    }
}